Lake Formationで管理するTableにQuickSightからアクセスする(LF-Tagの利用)
データアナリティクス事業本部のnkhrです。今回のブログでは、QuickSightからData Lake(Lake Formation管理)へLF-Tagによりアクセスする方法を検証します。
Lake Formationの基本設定および、サンプルデータの準備は、以下のブログに従って準備しました。
検証イメージは以下の通りです。灰色部分は上記のブログを参考に、既に構築済みとします。
QuickSightの設定
QuickSightの起動
今回は以下の設定でQuickSightを立ち上げました。
- Plan: Enterprise (無料期間超えるとPlan料金が課金されるので、不要な場合はアカウント解除必要)
- Autentication Method:Use IAM federated identities & QuickSight-managed users
- Region:Tokyo
- IAM Role:Use QuickSight-managed role (default)
- QuickSightはデフォルトのManaged roleとして「aws-quicksight-service-role-v0」を自動作成します
- Allow access and autodiscovery for these resources:なし
Athena利用権限の付与
Athena経由でLake Formation管理のData Catalogにアクセスするため、Athenaの利用権限が必要です。今回は、AthenaとAthenaの出力で利用するバケットを指定します。
上記を実行することでデフォルトロール「aws-quicksight-service-role-v0」に自動で権限が追加されます。
Groupの作成
QuickSightでは、グループを作成してユーザをグループ単位で管理できます。2022/01時点ではグループはAWS CLIから作成する必要があります。
- グループを作成する
$ aws quicksight create-group --aws-account-id=<account-id> --namespace=default --group-name="LakeGroup" --description="LakeFormation TestGroup” $ aws quicksight list-groups --aws-account-id=<account-id> --namespace=default
- メンバーを追加する
$ aws quicksight create-group-membership --aws-account-id=<account-id> --namespace=default --group-name=LakeGroup --member-name=<quicksight-username> $ aws quicksight list-group-memberships --aws-account-id=<account-id> --namespace=default --group-name=LakeGroup
削除する場合もAWS CLI経由で実行します。
- グループの削除する
$ aws quicksight delete-group --aws-account-id=<account-id> --namespace=default --group-name=LakeGroup
Lake Formation設定
タグを追加する
QuickSightのグループで利用するタグをLake Formationに追加します。
- Key: viewers
- Value: quicksight
QuickSightのグループにタグを付与する
- Principle: SAML users and groups
- 作成したGroupのARNを指定する
- AWS CLIの「aws quicksight list-groups 」コマンドから取得可能です
- LF-Tag
- viewers/quicksight
- Database Permission
- Describe
- Table Permission
- Select
Databaseにタグを付与する
Lake Formationでは既にDatabase: reviewsとTables:test_lakeformation_xxxが作成済みとします。
Database一覧に表示されるreviewsの詳細画面を表示し(リンククリック)、LF-Tagsの「Edit LF-tags」ボタンからviewers:quicksightを追加します。
Databaseにタグを付与した場合は、Database配下に作成されるTableにも自動でタグが継承されます。継承されたタグは、Tableから削除することはできません。
QuickSightでの可視化
データセットの追加
QuickSightのコンソールから「データセット」の項目を選択し、「新しいデータセット」のボタンからデータセットを選択します。
- データセット:Athena
- データソース名:reviews
- テーブル:test_lakeformation_xxx
- 「迅速な分析のために SPICE へインポート」を選択
可視化
フィールドリストから「product_titile」をシートにクリック&ドロップすることで、product_titleの名前および数が可視化できます。
最後に
今回は、LakeFormationで管理しているDataSetに対してAthena/QuickSightからアクセスする方法を確認しました。Lake Formationを利用することで、Data LakeへのアクセスをLake Formation側で一元的に制御できるため、QquickSightを利用する場合はLake Formationを利用する価値はあるかなと思いました。
以上、nkhrでした。